package com.aispeech.rcprvd.jni;

public class RcNativeProcessJni {

    /**
     * 通过native接口检查当前设备状态
     * @return 是否在连接状态
     * 0 : 没有连接
     * 1 : 连接状态
     */
    public static native int native_device_state();

    /**
     * 初始化底层process
     * @param listener 回调接口用于接受音频和按键事件
     * @return
     * 0: success
     */
    public static native int native_process_init(RcNativeListener listener);
    public static native int native_process_start(int id);
    public static native int native_process_feed(int id, byte[] data, int len);
    public static native int native_process_stop(int id);
    public static native int native_process_destroy();

    public  interface RcNativeListener {

        /**
         * 按键事件回调
         * @param keyCode 按键值
         * @param state 按键状态
         * 1 : 按下
         * 0 : 松开
         */
        void onKeyEvent(int keyCode, int state);

        /**
         * 获取到的音频数据
         * @param audioData 音频数据
         * 默认16k/16bit/单通道音频
         */
        void onBuffer(byte[] audioData);
    }
}
